package cn.lg.soar.boot.fc.entity.vo;

import cn.lg.soar.boot.fc.entity.BuildingType;
import cn.lg.soar.core.annotations.constraints.group.Create;
import cn.lg.soar.core.annotations.constraints.group.Update;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDate;
import java.util.Map;

/**
 * 功能简述
 *
 * @author: zp
 * @date: 2025-01-13 16:53
 * @version: 1.0.0
 */
@Data
@ApiModel(value = "Building", description = "楼栋Bo模型")
public class BuildingVo {

    /**  */
    @ApiModelProperty(value = "主键")
    private Long id;

    /** 校区ID */
    @ApiModelProperty(value = "校区ID")
    private Long campusId;

    @ApiModelProperty(value = "院区简单Vo")
    private CampusEasyVo campusEasyVo;

    /** 楼栋类型ID */
    @ApiModelProperty(value = "楼栋类型ID")
    private Long typeId;

    @ApiModelProperty(value = "楼栋类型Vo")
    private BuildingType buildingTypeVo;

    /** 楼栋名称 */
    @ApiModelProperty(value = "楼栋名称")
    private String name;

    /** 楼栋图片 */
    @ApiModelProperty(value = "楼栋图片")
    private String img;

    /** 楼栋面积 */
    @ApiModelProperty(value = "楼栋面积")
    private String area;

    /** 房屋面积 */
    @ApiModelProperty(value = "楼栋使用面积")
    private String useArea;

    /** 地上层数 */
    @ApiModelProperty(value = "地上层数")
    private Integer groundFloor;

    /** 地上建筑面积 */
    @ApiModelProperty(value = "地上建筑面积")
    private String groundArea;

    /** 地下层数 */
    @ApiModelProperty(value = "地下层数")
    private Integer undergroundFloor;

    /** 地下建筑面积 */
    @ApiModelProperty(value = "地下建筑面积")
    private String undergroundArea;

    /** 建设年代 */
    @ApiModelProperty(value = "建设年代")
    private LocalDate years;

    /** 建账情况(0-未建账 1-已建账 2-不建账) */
    @ApiModelProperty(value = "建账情况(0-未建账 1-已建账 2-不建账)")
    private Integer accountsSituation;

    /** 附件 */
    @ApiModelProperty(value = "附件")
    private String attachment;

    /** 排序 */
//    @NotNull(message = "排序不能为空", groups = { Create.class, Update.class })
    @ApiModelProperty(value = "排序")
    private Integer orders;

    /** 楼栋面积 */
    @ApiModelProperty(value = "校区地图位置json")
    private String mapJson;

    /** 扩展字段1 */
    @ApiModelProperty(value = "扩展字段1")
    private String extend1;

    /** 扩展字段2 */
    @ApiModelProperty(value = "扩展字段2")
    private String extend2;

    /** 扩展字段3 */
    @ApiModelProperty(value = "扩展字段3")
    private String extend3;

    @ApiModelProperty(value = "节点id")
    private String parentId;

    /** 乐观锁 */
    @ApiModelProperty(value = "乐观锁")
    private Integer version;

    @JsonIgnore
    public Long primaryKey() {
        return this.id;
    }

}
